package com.hy;

import java.util.ArrayList;
import java.util.List;

/**
 * Created With IntelliJ IDEA.
 * Descriptions:杨辉三角II
 * 返回第i行数据
 * author: Mr.Du
 * Date: 2022/12/6
 * Time: 19:58
 */
public class GetRow {
    
    public List<Integer> getRow(int rowIndex) {
        List<Integer> row = new ArrayList<Integer>();
        row.add(1);
        for (int i = 1; i <= rowIndex; ++i) {
            // 这步操作很妙，当i==j时，进行相加操作
            row.add(0);
            for (int j = i; j > 0; --j) {
                row.set(j, row.get(j) + row.get(j - 1));
            }
        }
        return row;
    }
    
    // 笨办法，从上到下计算每一行数据，返回最后一行数据
    public List<Integer> getRow1(int rowIndex) {
        List<List<Integer>> res = new ArrayList<>();
        for(int i = 0;i < rowIndex + 1;i++){
            List<Integer> list = new ArrayList<>();
            for(int j = 0;j <= i;j++){
                if(j == 0 || i == j){
                    list.add(1);
                }else{
                    list.add(res.get(i-1).get(j-1) + res.get(i-1).get(j));
                }
            }
            res.add(new ArrayList<>(list));
        }
        return res.get(rowIndex);
    }
}
